package com.hzw.saas.api.rbac;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hzw.saas.api.rbac.bo.RoleBO;
import com.hzw.saas.api.rbac.bo.RoleDetailBO;
import com.hzw.saas.api.rbac.query.RoleAddQuery;
import com.hzw.saas.api.rbac.query.RoleUpdateQuery;
import com.hzw.saas.common.config.util.PageParam;

/**
 * @author zzl
 * @since 08/30/2021
 */
public interface IRoleService {

    /**
     * 分页获取角色列表
     *
     * @param pageParam     分页参数
     * @param sys           所属系统
     * @param fuzzyRoleName 角色名模糊查询，可为空
     * @return list
     */
    IPage<RoleBO> pageList(PageParam pageParam, Integer sys, String fuzzyRoleName);

    /**
     * 获取角色详细信息
     *
     * @param pid 角色ID
     * @return 角色详细信息
     */
    RoleDetailBO get(String pid);

    /**
     * 新增角色
     *
     * @param query 角色参数
     * @return 角色信息(含PID)
     */
    RoleDetailBO add(RoleAddQuery query);

    /**
     * 更新角色
     *
     * @param query 角色信息
     * @return true or false
     */
    boolean update(RoleUpdateQuery query);

    /**
     * 删除角色
     *
     * @param pid pid
     * @return true or false
     */
    boolean delete(String pid);

    /**
     * 批量删除角色
     *
     * @param pids pids
     * @return true or false
     */
    boolean deleteBatch(List<String> pids);

}
